home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / taropyon / silib / inc / sikcs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-16  |  1.9 KB  |  65 lines

  1. /*************************************************************************
  2. *    "sikcs.h"
  3. *-------------------------------------------------------------------------
  4. *    Key customize library
  5. *                                            Copyright (c) 1993, TaroPYON
  6. *************************************************************************/
  7.  
  8. #ifndef    _SIKCS_H
  9. #define    _SIKCS_H
  10.  
  11. #define    KCS_HASH_MAX    (32)    /* ハッシュテーブルの数    */
  12. #define    KCS_HASH(_ec)    (((((unsigned short)(_ec))>>8)*31)&(KCS_HASH_MAX-1))
  13.  
  14. typedef    struct _kcskey_t
  15. {
  16.     struct _kcskey_t    *next;
  17.     unsigned int        att;    /* 属性            */
  18.     unsigned int        ec;        /* キーコード    */
  19.     int                    fncNo;    /* 機能番号        */
  20.     int                    (*func)();
  21.     char                *msg;
  22. } KCSKEY_T;
  23.  
  24. #define    KCSKEY_ATT_PFX    (0x0000_0001)
  25.  
  26. typedef    struct _kcspfx_t
  27. {
  28.     struct _kcspfx_t    *next;
  29.     unsigned int        att;    /* 属性                */
  30.     unsigned int        pfx;    /* プレフィクスキー    */
  31.     unsigned int        sfx;    /* サーフィクスキー    */
  32.     int                    fncNo;    /* 機能番号            */
  33.     int                    (*func)();
  34.     char                *msg;
  35. } KCSPFX_T;
  36.  
  37. typedef    struct
  38. {
  39.     unsigned int        att;    /* 属性            */
  40.     unsigned int        stt;    /* ステータス    */
  41.     KCSKEY_T            *key[KCS_HASH_MAX];
  42.     KCSPFX_T            *pfx[KCS_HASH_MAX];
  43.     int                    fncNoPfx;    /* プレフィクスキー機能番号        */
  44.     int                    (*funcPfx)();
  45. } KCS_T;
  46.  
  47. /*    "kcs010.c"        ----------------------------------------------------*/
  48. extern    KCS_T  *KCS_workAlloc(void);
  49. extern    void    KCS_workFree( KCS_T *kcs );
  50.  
  51. /*    "kcs011.c"        ----------------------------------------------------*/
  52. extern    KCSKEY_T   *KCS_getKey( KCS_T *kcs, unsigned int ec );
  53. extern    int            KCS_setKey( KCS_T *kcs, KCSKEY_T *para );
  54.  
  55. /*    "kcs012.c"        ----------------------------------------------------*/
  56. extern    int            KCS_setPfxCnf( KCS_T *kcs, int fncNo, int (*func)() );
  57. extern    KCSPFX_T   *KCS_getPfxKey( KCS_T *kcs, UINT pfx, UINT sfx );
  58. extern    int            KCS_setPfxKey( KCS_T *kcs, KCSPFX_T *para );
  59.  
  60. /*    "kcs013.c"        ----------------------------------------------------*/
  61. extern    void        KCS_clear( KCS_T *kcs );
  62.  
  63.  
  64. #endif
  65.